home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / COMMADIO / XRS1.LZH / XRS45DOX.ZIP / NEWIN450.DOC < prev    next >
Text File  |  1991-07-04  |  37KB  |  579 lines

  1. Fixed in 4.50S (Release 2 or ASP "Shareware" version):
  2.  
  3. 1) "Compress Mailbag" is selected, the mailbag is no longer compressed
  4.  *and* deleted (only compressed).
  5.  
  6. 2) If a subject you quote is too long to fit into the new subject field
  7.  (more than 25 characters in "QWK" mode or 70 characters in native mode)
  8.  it is clipped to fit.  This previously caused a "Portal Error" message.
  9.  
  10. 3) The last block of LIM/EMS memory used by the HX routines to preload
  11.  the summary information (assuming you have LIM/EMS and didn't exclude
  12.  using it) is not nuked on shell to DOS or calling an external program.
  13.  This is done by "locking" 16k blocks of LIM/EMS memory (only one at a
  14.  time) so other parts of the program that use LIM/EMS (like "Swap" or
  15.  caching, or some external programs) don't destroy the contents of the
  16.  LIM/EMS page-frame by failing to save and restore the "context" when
  17.  they access (or rather change) it.  Note that if you use a tiny page
  18.  frame for LIM/EMS (i.e. 16k or 32k instead of the normal 64k frame),
  19.  you can lock out swapping or make other LIM/EMS access extemely slow
  20.  since XRS will sometimes lock a 16k block until it is through with it.
  21.  (but in general, only building the <J>ump list, "virtual paging" of
  22.  very large lists and during external program calls or "Swap to DOS"
  23.  force locking a block, and therefore this happens only for a second
  24.  or two in most when these functions are being used.)
  25.  
  26. 4) New "CONFIG.XRS" parameter 'Soft Fonts' causes XRS to not adjust the
  27.  screen geometry when you return from a DOS shell or swap/shell.  This
  28.  must be used with "SET XRS=X" to be effective.  Normally, XRS restores
  29.  the video mode which was in effect when you shelled out - with soft
  30.  fonts, this could be problamatic - with hardware fonts, it is not.
  31.  
  32. 5) Putting ^aPID: ("hidden") kludges into message is the default instead
  33.  of putting XRS version information on the tear line.  XCS version (if
  34.  XCS or QWK mail being read) *is* displayed on the tear line - whether
  35.  or not pids are turned on.  You can put "No Pids" into CONFIG.XRS to
  36.  defeat this, but I would prefer that you not, and that programs not
  37.  change the tear or pid lines after they are created - this should never
  38.  occur!  The very reason they are there is to identify the originating
  39.  program that injects the mail into the system, and altering them is a
  40.  total defeat of that intent.  Several "QWK" style mail readers have
  41.  given ORE ("Offline Reader Editor") programs a "bad name" on Fidonet,
  42.  since they do not properly alter their behaivior to accomodate the new
  43.  environment (which XRS does).  XRS 4.50 release 2 also only puts a BBS
  44.  type in the address field of the Origin line.
  45.  
  46. 6) A new text document named "OPTIMIZE.XRS" is included in this release.
  47.  It details the best things to 'tweek' depending upon how much and which
  48.  type(s) of memory you have, disk speed, etc.  All of these are done by
  49.  changing and/or adding parameters to the CONFIG.XRS file.
  50.  
  51. 7) If a "Bundler" is suppied, XRS uses it instead of XRS2REP.EXE if you
  52.  are reading a .QWK format mailbag.  Previously, XRS wouldn't use either
  53.  (it would use the internal "XRS_Pack" routines).
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. Changes from XRS v 4.10 -=> v 4.50 Release
  62.  
  63.  
  64. [This version contains 107 changes/updates/fixes condensed below:]
  65.  
  66.  
  67. 1) Support for .QWK format mailbags is integrated into the program by
  68.  calling portions of Rudi Kusters' "XCS" (eXpress Conversion System).
  69.  Picking a .QWK format mail bundle will cause XRS to first unpack it,
  70.  then call QWK2XRS to convert the bundle to an XRS mailbag.  Upon exit,
  71.  XRS will call the "Bundler xxxx" program, or "XRS2REP.EXE" if none is
  72.  specified.  (These two programs are part of Rudi's XCS version 1.00 or
  73.  later.  XCS also includes programs to transport to and from VAX/VMS
  74.  Mail, FidoNet *.PKT mail packets, archived messages, etc.)  XRS does
  75.  not assume .QWK format mail bundles are the same 'flavor' packer you
  76.  have for your .?XR format (XRS mailbags), or assumes "Zip" if you have
  77.  QWK mail only.  Instead, it 'smells' them to determine unpacker.  For
  78.  .QWK format mail, XRS limits the subject field to 25 characters, and
  79.  adjusts the on-screen box.  Note that this window scrolls if you put
  80.  more characters in than fit in the window - the length of the prompt
  81.  is dependant upon which native language you use (so in some cases it
  82.  may not scroll at all).  XRS recognizes "PCRelay:" as an origin line.
  83.  (the current version of XCS at XRS 4.50 release time was "XCS100.ZIP")
  84.  
  85. 2) The file input and output filters have been changed.  Basically, I've
  86.  decided to leave it up to the SysOps and users to decide what is proper
  87.  in mail depending upon their network, etc.  Because it is possible to
  88.  compromise FidoNet security and/or deliberately send naught things (the
  89.  ANSI sequences starting with <ESC> could reprogram your keyboard for
  90.  you), there are still a very few limitations (filters) as follows:
  91.    On the input side, <TAB> characters are expanded to spaces (dependant
  92.  upon the setting of the "Tab x" setting - default is 8), <NULL>, <ESC>
  93.  and <EOF> characters are stripped, and <CR><LF> pairs are translated to
  94.  <CR> only so they display correctly on-screen. (this filter is the one
  95.  used when you "Import" a file either with <ALT_F4> when in the internal
  96.  editor, and in response to the "Insert from another file?" prompt.
  97.    On the output side (writing messages from the internal or external
  98.  editors), <CR> characters are translated back to <CR><LF> pairs so the
  99.  file will print correctly if you wish, <NULL>, <ESC> & <EOF> characters
  100.  are stripped.
  101.    Note that the internal "CopyMailToPkt()" function (for FidoNet export
  102.  to *.PKT file format) converts <CR><LF> pairs back to <CR>, but does
  103.  not strip <LF> unless it is preceeded by <CR>, and also strips <NULL>,
  104.  <ESC>, <EOF> and <DEL> (0xff).  If you use an external mail converting
  105.  packer (such as Rudi Kusters' XRS2REP.EXE .QWK format packer program),
  106.  different rules may apply according to the currently prevailing rules
  107.  and regulations of the other nets.
  108.    Actually, it is physically impossible to enter an <ESC> or <NULL> in
  109.  any message using my internal editor, since <NULL> signals the end of
  110.  the editor buffer, and an <ESC> character would not place in escape in
  111.  the message, but rather pop up the "Save Message?" selection window.
  112.    Before anyone takes off on a snit about eliminating <ESC> (because it
  113.  is "required" for ANSI color sequences), two things: as I noted, those
  114.  same sequences could be used by a malicious person to reprogam your own
  115.  keyboard very easily, so <Enter> produced "Echo Y | Del *.*" or even
  116.  worse, "Echo Y | Format c:" or something like that.  Also, there are
  117.  several different methods including the one already implemented by Mark
  118.  Herring in QMail², for example (which do not require using an <ESC> and
  119.  cannot be used to wreak havoc on other users).  If there are enough
  120.  people that want it, I will consider putting an "ANSI_Art" routine into
  121.  future versions of XRS, although they are truly a waste of bandwidth!
  122.    In doing this, I also found the bug that caused formerly "illegal" (in
  123.  FidoNet) characters to import as the beta 'ß' symbol and also a bug that
  124.  made portions of lines after "illegal" symbols to disappear when you had
  125.  them in quotes, and fixed both.
  126.  
  127. 3) Complete and full-functional "threading" is available.  If you put the
  128.  new "Threading" parameter in your CONFIG.XRS file, the plus and minus keys
  129.  become thread following if (and only if) a thread exists and it is in the
  130.  mailbag, instead of duplicating "Next" and "Back" respectively.  If there
  131.  is a previous or next message in a thread and the message is in the open
  132.  mailbag, the "<" or ">" next to "Thread" in the header will be replaced by
  133.  a flashing "<<" or ">>" and if you have threading turned on the plus and/or
  134.  minus keys are redefined to read the previous and/or next message in the
  135.  thread as applicable (if there is only a back-thread, "+" still reads the
  136.  next message, and vice-versa).  The change is indicated by "bottom-line"
  137.  help screens as the menu-bar is scrolled.  The blinking double chevron
  138.  pointing in either direction indicates whether the threaded message is in
  139.  the mailbag or not - whether the plus and minus keys have their threading
  140.  function turned on is completely independent.  Threading works by creating
  141.  a doubly-linked list from the single "ReferTo" previous message thread
  142.  pointer in each MAIL?IDX.XRS record which is 'cleansed' of messages not in
  143.  the mailbag, cross-links or circular links are removed and then everything
  144.  left is reverse linked to provide forward pointers.  If this information
  145.  is inaccurate or missing, threading will provide poor results at best - if
  146.  any.  Note that some previous versions of XRS had zeroed out the "ReferTo"
  147.  field when saving progress because no valid pointers were found - these
  148.  old mailbags will not thread properly (XRS now saves only valid pointers,
  149.  discarding any to messages outside the range of messages in the mailbag).
  150.  Another thing you should note: Threading _completely_ ignores any of the
  151.  "filters", like "New Only" or "To You" and displays the threaded message.
  152.  Since the "previous" thread link is saved as part of MAILxIDX.XRS, each
  153.  mailbag only has to be 'cleansed' and doubly linked once (this is why the
  154.  total link count = used link count each time thereafter).  <F4> hot-keyed
  155.  configuration changing threading on-the-fly is instantaneous - if you see
  156.  an inactive (non-blinking) thread, and want to follow it, simply turn on
  157.  threading from the <F4> menu and the thread link will become active (and
  158.  you can turn it off similarly, as well - when you toggle that option, any
  159.  onscreen chevrons will either begin to blink indicating they are "hot" or
  160.  quit blinking, indicating they are available but inactive.  Of course, it
  161.  is easiest just to leave threading on all the time and use the <Enter> or
  162.  "<N>ext" and "<B>ack" for normal reading and "+"/"-" for threaded reads.
  163.  Messages which are read following threads and 'backed out of' are marked
  164.  read and not redisplayed later in the mailbag.  (once menubar is built,
  165.  the "help" descriptions will not change if you toggle threading.)  To
  166.  facilitate 'true theading', the plus and minus keys can be locked out
  167.  when there is no thread to follow, allowing easier thread following.
  168.  Put "Thread Only" in CONFIG.XRS to activate this function.  Thread only
  169.  implies "Threading".  The <F4> configuration "Threading" option is a
  170.  'tri-state' button, alternating between "Threading Off", "Threading On"
  171.  and "Thread Only".  For each line in the "<J>ump" list that has active
  172.  back or next thread pointers, chevrons to the left and/or right are shown
  173.  in front of "Re:".  If you use "Page Mode" viewing, and the "N = Next..."
  174.  is displayed in between pages, "+" and "-" skip to the previous and next
  175.  message without regard to the "threading" mode being used.  "<H>ome" is
  176.  added to the menubar if a previous thread is active, so you can return to
  177.  the 'top' of a thread instantly and proceed to read the next topic.
  178.  
  179. 4) Mailbags may have an unlimited number of messages, however you *must*
  180.  have LIM/EMS memory if you want to preload the summary and have mailbags
  181.  with more than 2000 messages!  The number of messages in an area is not
  182.  limited.  (Preloading the summary file for 5000 messages requires 13
  183.  32k blocks of LIM/EMS, for example.)  Using indirection this version
  184.  defines, allocates and loads the tables at run-time, taking less memory
  185.  than previous versions to load (by more than 20k), but expanding the heap
  186.  as is needed to accomodate larger mailbags.  Actually, mailbag size is
  187.  limited only by disk space and available RAM.  You must have enough free
  188.  "low" RAM to load the MAIL?IDX.XRS file plus 16% (see above - XRS now
  189.  build doubly-linked threaded topic lists) - 14 bytes per message in the
  190.  mailbag.  The max is probably somewhere around 30,000 realistically...
  191.  NOTE!! Having more than 1200 messages requires you to either A) turn off
  192.  "Preload Summary", B) use an overlayed version of the program, C) have
  193.  the required amount of LIM/EMS to preload the summary index or D) have a
  194.  386 or 486 machine with memory manager leaving 600k or more free RAM when
  195.  starting XRS.  XRS has no limit on the number of messages in an area,
  196.  however more than 1000 messages per area will create an extremely large
  197.  "<J>ump" list which requires a correspondingly larger amount of free RAM.
  198.  MS/DOS 5.0 with DOS=HIGH or DR/DOS 5 will help considerably!  Using the
  199.  "VidRam" program that comes with QEMM also adds 64k "low RAM" that DOS
  200.  can see.  (but see below - it is possible to "virtualize" jump lists to
  201.  force them to use a fixed amount of memory, "paging" elements in and out
  202.  of the list as you scroll thru it)  With more than 1600 messages, unless
  203.  you turn "Preload Summary" off, you probably need some combination of or
  204.  "all the above".  XRS uses a "Heap Expander" routine to store portions of
  205.  dynamically allocated RAM in LIM/EMS memory if there is any available,
  206.  otherwise the memory from the DOS far heap (lower 640k) is used.  "Preload
  207.  Summary" uses from one to 32 blocks - 64k max each, eliminating all of the
  208.  summary from a mailbag from the far heap (storing it in blocks of LIM/EMS
  209.  instead).  Even if you don't have LIM/EMS memory this version is much more
  210.  efficient with the dynamically allocated RAM due to optimization of the
  211.  heap routines with a 'best fit' algorithm (20 to 30% less memory is
  212.  required to store the summary).  A nice side-effect of this is that if the
  213.  "Preload Summary" is stored in LIM/EMS - that formerly 32K to 160K of RAM
  214.  is not swapped out using the <F10> shell to DOS hotkey.  Also, another
  215.  side-effect: preloading summary takes about half as much time.
  216.  "SET HX=/NOEMM" disables the "Heap Extender" routines from even trying to
  217.  use LIM/EMS memory.  "No EMS" in the CONFIG.XRS file forces "SET HX=/NOEMM"
  218.  also. (you don't have to do both to totally disable LIM/EMS access, but you
  219.  can only disable HX if you want, but using "SET").  After "Preload Summary",
  220.  if any LIM/EMS memory was used, the amount is shown along with "low RAM"
  221.  in the memory allocation usage message.
  222.  
  223. 5) XRS supports up to 1024 conference areas selected from 65535.
  224.  
  225. 6) XRS virtualizes the "<J>ump" list if more than 500 messages would be
  226.  in the list.  Any number of messages can be displayed since I virtually
  227.  page list elements in and out (in 50-message units) as you scroll around
  228.  the list.  Note that this makes the initial "huge" lists pop-up much
  229.  quicker, and the paging does not noticably slow the list scrolling, so
  230.  the net effect is that everything is faster handling the larger lists
  231.  instead of slower.  In order to be most flexible, you can specify the
  232.  threshold for virtualization of the list (which defaults to 500) to any
  233.  number in the range 100 up to 3000.  XRS builds any "<J>ump" list with
  234.  fewer entries normally, but builds a virtual list for larger lists.  If
  235.  you run under DesqView, setting this to a low number will allow you to
  236.  read 5000+ message mailbags in as little as 300k.  If you have plenty of
  237.  free RAM, increasing it may provide better performance on large lists.
  238.  Each time scrolling the virtual list causes paging, XRS will swap out
  239.  up to 20% of the list (under normal circumstances that would be 100
  240.  messages) so having a very small number will give good response and use
  241.  little memory but require more frequent disk accesses, while using a
  242.  large number will eat more free RAM, but provide generally smoother
  243.  operation and less frequent disk accesses.  To set the threshold for
  244.  "<J>ump" list virtualization, use "Virtualize xxxx" in your CONFIG.XRS
  245.  where 'xxxx' can be anything within the range 100 to 3000 - anything
  246.  outside that range will be adjusted.  Of course, if you have "Preload
  247.  Summary" on, disk accesses are not required in either case (since the
  248.  entire list is either in LIM/EMS or "low" memory).  <CTRL_PAGEUP> and
  249.  <CTRL_PAGEDOWN> take you to the current (not virtual) list top element
  250.  and bottom element respectively (you still have to use PAGEUP/PAGEDOWN
  251.  or UP/DOWN arrows to get into any other virtual segment of the list).
  252.  Also, "VirtualJump xxx" allows you to adjust the default number of list
  253.  elements which are deleted from one end of the list and an equivalent
  254.  number appended to the other end of the list.  The default is 50 or
  255.  the number of lines per page, whichever is less.  Adjusting these two
  256.  parameters allows you a full range of virtual list control - under DV
  257.  you could limit "Virtualize 100", "Virtualimit 38" (assuming 25-lines)
  258.  and make it run in minimal (less than 12k) dynamic RAM as opposed to
  259.  the former unlimited amount proportional to the entire list size.  You
  260.  can also minimize virtual "waits" by increasing the "Virtualize xxxx"
  261.  as high as you can if you normally read mailbags larger than 1000 or
  262.  more messages, and adjusting "VirtualJump xxx" can either quicken the
  263.  response (larger size) minimizing waits, but longer waits each time,
  264.  or slow it down somewhat by requiring smaller, more frequent paging.
  265.  The default settings I use are best for 'normal' users, the optimal
  266.  settings for your computer depend upon many things - processor power
  267.  and hard disk access time, mostly.  You may have to adjust these to
  268.  find your "prefered" settings.  Note that the up and down arrows on
  269.  the scroll bars blink if they are 'virtual' links and not physically
  270.  in the current list, but function the same in all cases.  Also note
  271.  that using "PAGEUP or PAGEDOWN" you can jump into a virtual segment
  272.  even though the arrow is not blinking (since jumping a page would put
  273.  you outside the current physical list).  Now that you're all lost, I
  274.  suggest you just try it, it all comes naturally, just like before,
  275.  except you will see "Please Wait" during virtual paging of the list.
  276.  Successive <PAGEUP>, <PAGEDOWN>, or up/down arrows with the mouse will
  277.  continuously page in new elements of the virtual list until you reach
  278.  either end.  I think the number of message when the "To You" filter is
  279.  on (which would require more code to implement) is normally going to
  280.  be low even if you have a very large mailbag, so if the "ToYou" filter
  281.  is on, no virtualization is done (to keep the code-overhead down).  If
  282.  you build a huge mailbag with mostly/only messages "to you", XRS will
  283.  take 10k RAM per 100 messages to display lists of "To You" elements
  284.  (although simply turning off the "To You" filter from the <F4> config
  285.  menu forces XRS to virtualize the list anyway!).  Since virtualizing
  286.  the list requires more frequent access to the SUMMARYx.XRS file (or the
  287.  data preloaded in LIM/EMS or "low" RAM), and very large lists are now
  288.  possible, by default I automatically bisect the list 16 ways and record
  289.  either the offset into SUMMARYx.XRS or the HeapXtender handle and HX
  290.  offsets.  This allows very fast paging of new items into the list.  If
  291.  XRS detects more than 1000 messages, it will increase the number of
  292.  list pointers by 16 every 1000 messages, up to 128 total, so that no new
  293.  insertion point is ever more than 63 messages from the closest pointer
  294.  (unless you have a mailbag with more than 8000 messages!).
  295.  
  296. 7) I no longer use a "COUNTRY=xx"-dependent routine to get a spelled-out
  297.  month for the date string in messages, since depending upon which code
  298.  page you use, and which country code you used, you could get either your
  299.  own (i.e. native language spelled months) or garbage before.  You should
  300.  always get consistent dates in message headers  (and they should always
  301.  be the English "short" three-letter spelling of the month), but all of
  302.  the on-screen clocks should still use the 'local' format.
  303.  
  304. 8) If XRS finds the "$$ACTIVE.XRS" semaphore file at startup (which is
  305.  normally an indication that the program is already running), it will let
  306.  you bypass that check and start anyway by answering "Y" to the "Continue
  307.  Anyway? (y/N)" prompt - the default is "N".
  308.  
  309. 9) If you hit <ESC> when the message reading menubar is displayed, you
  310.  go back to the main menu instead of proceeding to the next message.
  311.  This eliminates the need for the "<E>xit" option, which gives a little
  312.  more room on the menubar for foreign language versions.
  313.  
  314. 10) If the "Read Only New" filter is turned off when you exit, XRS will
  315.  assume you have read all messages and offer to compress and/or delete
  316.  the current mailbag (or leave it alone).  If you compress it, you may
  317.  optionally select a different name for the output file.  You may pick
  318.  the default action for the above using a new CONFIG.XRS parameter
  319.  "EmptyBag x" where 'x' = the hot-key for any of the four menu selections
  320.  (in English they are "<C>ompress Mailbag", "<D>elete Mailbag", "<R>epack
  321.  AND Delete" and "<L>eave it Alone" - so C, D, R & L are valid).  If you
  322.  don't preselect one, the default is "Leave it Alone".  If you use a
  323.  non-English binary FNLS file ("Foreign Native Language Support - it is
  324.  named XRS$ALL.DTA just like the English version shipped with XRS), those
  325.  options will be different, depending upon which four "hot-key" options
  326.  are on your native language's menu.  By default, mailbags which are
  327.  recompressed go to the "InDir xxxxxx" subdirectory (where they started)
  328.  or if none exists, into the current subdirectory.  If you want to use a
  329.  different "holding area" for read mailbags, use "SaveBagPath xxxxxx" where
  330.  'xxxxx' is a subdirectory.  XRS automatically fiddles with the output
  331.  filename if the one it comes up with using "BAG_ID.XRS" and the packer
  332.  already exists, so you do not end up with more than one mailbag inside one
  333.  archive or accidentally overwrite an old one.  The "Packer xxxx" is used,
  334.  and if none is specified, PKZip is used.  Note that mailbags which were
  335.  originally QWK format are stored in .ZXR format.  The routine I used will
  336.  allow you to store over 100 mailbags for each BBS before you have to move
  337.  and/or delete some - be careful!  (this could easily eat up all of your
  338.  available disk space in a hurry...)  If you "Compress" or "Repack/Delete"
  339.  a mailbag that has not been fully read, even if you have a "SaveBagPath
  340.  xxxx" defined in your CONFIG.XRS parameter file, it will go back into the
  341.  "Indir xxxx" path instead.  This way you can still put them away partially
  342.  unread, open a new mailbag and read, then go back to them, while XRS will
  343.  still store completely read mailbags elsewhere (without you having to move
  344.  the file(s) around if you use "SaveBagPath xxxx").  You can force this
  345.  option to be displayed by using "Always".  If there are remaining unread
  346.  messages, a warning banner and a different "Bottom Line Help" is displayed.
  347.  Also, if you have unread messages on exit and the "Compress/Repack&Delete/
  348.  Delete/Leave" menu is displayed, the default is always "Leave" mailbag.
  349.  If the user sets "Emptybag x" to an invalid value, an error message is
  350.  displayed.  XRS will now notice that and chose the "Leave" option as the
  351.  default.  Note that as always, XRS will automatically adjust to a foreign-
  352.  language binary overlay and use the letters which correspond to that native
  353.  language's menu hot-key selections.  If you use a non-English overlay, your
  354.  parameters must specify valid keys for your native language instead!
  355.  
  356. 11) The <F2> screen is now the "Status" screen.  It now contains several
  357.  new bits of information, including NDP (math coprocessor), etc.  Since
  358.  noone knew what "RelativeSpeed" meant (it was based on PC/XT = 10 units),
  359.  I changed it to "RelativePower xx.x" where 'xx.x' is the power relative to
  360.  a 4.77MHz 8088 processor.  The status window no longer displays a random
  361.  string in front of "286?" if it cannot identify your processor.  (every CPU
  362.  that was "out of range" of the normal detection routines has been a 286.)
  363.  XRS 'knows' when QEMM/386 memory manager is in use and displays QEMM
  364.  instead of YES for "VM86" mode in the <F2> status window if it is found.
  365.  
  366. 12) XRS names all the LIM/EMS handles it uses so you can tell how each
  367.  piece is being used (includes overlay cache, HeapXtender and swapping).
  368.  You can see LIM/EMS handles with "Mem/d" (DOS 4.0+) or MFT, etc.  Names
  369.  are "XRSCACHE" for overlayed versions if you have 96k LIM/EMS memory at
  370.  run-time, "XRS$HXxx" where 'xx' = '00'..'31' for LIM/EMS handles used by
  371.  the HX routines, and "XRS$SWAP" for the swapfile for shell to DOS, etc.
  372.  
  373. 13) XRS saves and restores the video mode no matter what it is when you
  374.  start, even if you tell it not to adjust the video mode.  It also resets
  375.  that mode upon return from external program calls, since it is possible
  376.  that they have changed the lines-per-screen size.  The only potential
  377.  screwup is that if you drop to DOS and do something that changes your
  378.  *hardware* font, without changing the video mode, then XRS has no way of
  379.  knowing you have changed lines-per-screen (therefore, if you do that,
  380.  the only way you can 'fix' it is to return to DOS and reload the correct
  381.  hardware font).  This should eliminate certain combinations of external
  382.  programs which are not "screen-smart" from messing up the display (it
  383.  usually shows up as random "junk" characters (with random attributes)
  384.  in the bottom few lines of the screen.
  385.  
  386. 14) You can have XRS automatically sort the <J>ump lists by subject with
  387.  a new CONFIG.XRS parameter "Sort Subjects".  This takes slightly longer
  388.  than displaying the list unsorted, of course.  Used in conjunction with
  389.  the new threading support, this allows <J>ump lists to be sorted by
  390.  thread or 'topic' as well.  This can also be turned on and off from the
  391.  <F4> hot-keyed configuration window, allowing you to only sort the list
  392.  when needed.  Several hot-keys were changed (in the English overlay,
  393.  anyway) to allow using the first character of each message (as hot-key).
  394.  
  395. 15) XRS does "relative jumps" on the BATxMAIL.XRS file rather than seeks
  396.  from the beginning of the file.  I compute the difference from current
  397.  file pointer to where I want to go and do a relative jump (seek).  This
  398.  speeds displays of headers during <J>ump by a factor of two, and even
  399.  more dramatically speeds things up if you have the new "Sort Subjects"
  400.  parameter in effect.  This also makes threaded reads and reads inside
  401.  areas or "to you" filters much faster, since each time the file pointer
  402.  is moved the average distance moved is smaller (typically much smaller).
  403.  
  404. 16) "Hide Search" is only effective for "AutoTag/Search" modes.  You can
  405.  easily take your pick during manual searches.  "N)onstop" in the <F8>
  406.  search/mark/tag routine is now "H)ide", which does the same thing as
  407.  before, except output isn't shown on the screen.  This allows you to
  408.  hide non-automatic searches if you wish, as well.
  409.  
  410. 17) "Page View" mode colors work exactly as the list view mode, and it is
  411.  79 characters wide with no blank space down the left side, allowing one
  412.  more character to show (which formerly got whacked on rare occasions).
  413.  The scrollbar arrows work differently - mousing them once moves one line
  414.  but holding down the button repeats at a rapid rate, the 'arrows' are
  415.  'pointers' instead, to remind you it works differently.  The action of
  416.  the "Up", "Down", "PgUp" and "PgDown" keys and mouse up/down arrows are
  417.  similar to Vern Buerg's "LIST.COM" program.  You can vary the scrolling
  418.  rate when using the mouse (held down) to anywhere from 1 to 20 lines per
  419.  second (the default is 6/sec. which works well) by using a CONFIG.XRS
  420.  parameter "SkipRate xx" where 'xx' = 1 to 20.  ("No Mark" in CONFIG.XRS
  421.  file is obsolete due to this change!)
  422.  
  423. 18) You can have a file of up to 256 random tag lines which are used if
  424.  there is no conference-specific origin line specified in "XRS.ORG" or
  425.  the "(bagid).ORG" file.  (and assuming there is no XORIGIN.XRS 'lock')
  426.  The format is simply lines of up to 60 bytes in a text file.  If the
  427.  text is too long to fit, it is truncated.  The filename "RANDOM.XRS"
  428.  is searched for on the PATH if it is not found in the current directory.
  429.  ('bagid' above = the mailbag name)
  430.  
  431. 19) XRS no longer deletes "ACCESSx.XRS" when deleting old mailbags, so
  432.  you can still send 'private' messages in appropriate conferences.
  433.  
  434. 20) The <F6> summary window only shows the information preceeding the
  435.  list of messages selected instead of the whole file (up to 65500 bytes).
  436.  This allows the window to pop-up in much less RAM, and much faster if
  437.  you have a large mailbag.  In order to see the entire list of messages,
  438.  use <J>ump during "All Read Chronological".  I also find the 'marker' in
  439.  SUMMARYx.XRS only once at the beginning of the program and thereafter
  440.  seek directly to that location for <J>ump lists when preload summary is
  441.  not being used (which makes jumping without preload quite a bit faster).
  442.  
  443. 21) Overlayed versions now come in two pieces - the "stub" RESP_*.EXE
  444.  plus a matching RESP_*.OVL file.  The resulting two separate files are
  445.  20k smaller than the old combined into one *.EXE file method, since
  446.  the very nature of RTLink+ allows the "stub" to be PKLite'd even though
  447.  it is part of an overlayed program.  This also opens up the possibility
  448.  of putting only the *.OVL file onto a RAM disk, or maybe placing the two
  449.  files on separate floppy disks, etc.  The *.OVL file must be in either
  450.  the same directory you run XRS from or available on your PATH (under DOS
  451.  3.0+ it could be in the same sub-directory as the corresponding *.EXE).
  452.  Because it is be possible to accidentally find the wrong corresponding
  453.  RESP_*.OVL file, the RESP_*.EXE stub does a check to insure that the two
  454.  are synchronized, and refuses to operate if it finds a "bad" overlay.
  455.  It will display the exact name of the *.OVL file in the error message
  456.  (you should delete the older *.OVL file and make sure XRS can find the
  457.  new one, or use a newer *.EXE file depending upon which is older).  The
  458.  overlayed versions require DOS 3.0 or higher for this to function.  One
  459.  minor side-effect is you cannot rename the RESP_OVL or RESP_RTL files.
  460.  
  461. 22) If you take out some "automatch" items from your CONFIG.XRS while you
  462.  have a mailbag open, XRS 'remembers' that each message which was marked
  463.  before is marked, but it no longer can find and color-cascade the items.
  464.  XRS no longer 'skips out' forgetting to update the time in this case.
  465.  
  466. 23) You can no longer pop-up the <F4> hot-keyed configuration window once
  467.  you have entered the "exit procedure" (on the way out of the program).
  468.  
  469. 24) The lookahead during "Optimize View" should be more accurate (it used
  470.  to sometimes miscount how XRS would display a message, resulting in not
  471.  putting a message in scroll mode or possibly cutting off the last line).
  472.  
  473. 25) The "Quotometer" doesn't get confused it you exit from a message with
  474.  the cursor at the end of the text buffer after cutting out quoted text.
  475.  
  476. 26) If an empty "RESPONSE.XRS" files exists at exit, it is deleted.
  477.  
  478. 27) XRS will look for both "XRSCOLOR.BIN", "XRS.ORG" and "XRS.KEY" on the
  479.  PATH if they are not found in the current sub-directory.
  480.  
  481. 28) Spurious bum addresses are not picked up - only "good" looking ones.
  482.  (this is for netmail replies - XRS always tries to find the address in
  483.  the message you are replying to, and occasionally made poor choices)
  484.  
  485. 29) XRS uses up to four initials when quoting a message.  (this also
  486.  means XRS needs to look forward 7 characters instead of 5 to tell if
  487.  each line has already been quoted)
  488.  
  489. 30) Things inside <> near the beginning of a line no longer throw XRS
  490.  off. (making it think it is a previously quoted line when it is not)
  491.  
  492. 31) If "No Alt Keys" is specified, <SHIFT_F5> simulates a <DEL> key.
  493.  This was on <SHIFT_F3> (by mistake) before.  <SHIFT_F3> is the pop up
  494.  window with registration information whether you have "No Alt Keys"
  495.  or not (registered users do not normally see this screen at all).
  496.  
  497. 32) Since .QWK style conferences usually end up with shorter braglines,
  498.  the maximum size was increased to 60 characters (although usually only
  499.  55 or so will fit).
  500.  
  501. 33) I include separate Windows 3.0 <tm> .PIF files, one - RESPONSE.PIF is
  502.  for non-386 mode use, and RESPONSE.386 (which should be renamed *.PIF)
  503.  is for 386 "Enhanced" mode.  Both allow 100k XMS memory to be used, so
  504.  if you are using an overlayed version, you can run with "cached" overlay
  505.  segments while using less "low" memory.  I also include XR.DVP, a sample
  506.  Desqview setup file - note that both of these *MUST* be inspected to see
  507.  if they need adjusting for your environment (including the RESP*.EXE you
  508.  use, if it is not RESPONSE.EXE!).
  509.  
  510. 34) If you hit <ESC> for any of the "To/Subject/Address/Crash/Private"
  511.  prompts you return to the next message if you are viewing messages or
  512.  to the menu if you are creating a new message in "Create/Delete/Edit".
  513.  
  514. 35) The mouse cursor doesn't get disabled "early" in certain situations.
  515.  
  516. 36) XRS no longer depends on the messages numbers being in ascending
  517.  sequence throughout the entire mailbag, so <J>ump works correctly if
  518.  you have a mailbag from a BBS type which allows duplicate numbers in
  519.  different conferences or if the messages are not sorted sequentially.
  520.  
  521. 37) Changing (setting and resetting) the "Private" bit with <F3> on
  522.  echomail areas (which allow them) works correctly.
  523.  
  524. 38) Adjusting colors (via the <ALT_F7> hot-key) is no longer fatal on
  525.  8088 or 8086 CPU chips.  I had some "'286" code hooked in there...
  526.  
  527. 39) XRS uses "LHA.EXE" instead of "LHARC.EXE".  If you use .LZH files and
  528.  don't have a copy of the new LHA (formerly "LHARC"), you should get it!
  529.  The new version gives better compression and better performance.  (the
  530.  current version is LHA210.EXE)
  531.  
  532. 40) The overlay structure was hand-optimized again to further balance the
  533.  size and mimimize intra-overlay calls.  This version still requires only
  534.  96k of LIM/EMS (or XMS 2.0 extended) RAM to run at 100% the speed of the
  535.  non-overlayed version (while using 80k less "low" memory).  The overlay
  536.  caching works with less (or none), but swapping to disk will occur more
  537.  often (increasing as the LIM/EMS or XMS available memory size decreases).
  538.  This only affects RESP_OVL.EXE and RESP_RTL.EXE (the overlayed versions).
  539.  
  540. 41) Matching of conference names is exact for *.ORG files.  (before, if a
  541.  conference name matched the first portion of a tag line, it was used even
  542.  if the whole name in the tag line was longer.
  543.  
  544. 42) Internal changes to XRS require update to XCS version 0.47 since any
  545.  earlier versions don't know how to handle mailbags with > 200 areas or
  546.  more than 995 messages.  Because of this, XRS 4.11 refuses to work with
  547.  a mailbag created by any earlier versions.
  548.  
  549. 43) Handling of "out-of-memory" during display of the "<J>ump" list is
  550.  improved.  Memory is correctly deallocated if you do not have enough RAM
  551.  to display it and things should continue normally.
  552.  
  553. 44) Exporting of "TAGged" messages is repaired.
  554.  
  555. 45) XRS 'knows' about User Requests and automatically forces messages
  556.  addressed to "XRS" into the LOCAL (Group #0) area marked as private.
  557.  For information about User Requests (automatic file downloads and the
  558.  ability to turn message areas on and off).  These are currently only
  559.  supported by XRSDoor 1.44 or later. (RemoteAccess/Quick/SuperBBS door)
  560.  Note that messages addressed to XRS have 'locked' attributes and can
  561.  only be edited or deleted (the header cannot be modified).  See the
  562.  separate file "REQUESTS.DOC" for detailed information on UserRequests!
  563.  
  564. 46) Mailbags with non-standard characters in the last position of the
  565.  file extension are found (i.e. "EBAYXCH1.ZX0" or "EBAYXCH1.QW0", etc).
  566.  
  567. 47) "Force New" forces the "AutoMatch" and/or "AutoTag" parameters to be
  568.  run but does not pop-up the summary/index window.  (mistakenly listed
  569.  as "Force Auto" in the previous version's documentation - my fault!)
  570.  
  571. 48) Exporting a message in "Quoted" format no longer sets the Reply flag.
  572.  
  573. 49) "VerifyInsert()" displays itself on the same line as the other prompts
  574.  during message header entry (i.e. subject, to name, etc).
  575.  
  576. and last, but not least:
  577.  
  578. 50) Message display is faster in this version than 4.10! (more assembler)
  579.